package me.zhengjie.modules.system.repository;

import me.zhengjie.modules.system.domain.System;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import java.util.List;

/**
 * SystemRepository
 *
 * @author guoyuan
 * @version 1.0.0
 * @since 1.0.0
 */
public interface SystemRepository extends JpaRepository<System, String>, JpaSpecificationExecutor<System> {
    /**
     * 根据系统编号倒序排列获取第一个
     *
     * @return /
     */
    System findFirstByOrderBySystemIdDesc();

    /**
     * 根据系统名查询系统
     *
     * @param systemName /
     * @return /
     */
    System findSystemBySystemNameEquals(String systemName);

    /**
     * 查找当前系统中小于当前系统编号最大系统编号的系统
     *
     * @param systemId /
     * @return /
     */
    System findFirstBySystemIdLessThanOrderBySystemIdDesc(Integer systemId);

    /**
     * 根据id列表查所有，根据系统编号正序排序
     *
     * @param ids /
     * @return /
     */
    List<System> findAllByIdInOrderBySystemIdAsc(List<String> ids);

    /**
     * 查找当前系统中大于当前系统编号的所有系统
     *
     * @param systemId /
     * @return /
     */
    List<System> findAllBySystemIdGreaterThanOrderBySystemIdAsc(Integer systemId);
}
